Skip to main content

Github Tutorial

Github is a great tool used for version control and codes storage. This document is trying to set up a simple standard in applying with Github for IC3 members.

Common commands

How to use Github Repository

Roles and privileges

  • Repository admin group (admin)
  • Maintainers (write)
  • Others (read)

Operations

  • Implement the repository descriptions and indicate the necessary information.
  • Commits are supposed to be small and frequent
  • Commit messages should be semantic:
    • First line indicate the commit reason
    • Other lines indicate whatt have been altered
  • One Branch, one feature. All merges must be reviewed and confirmed by admin.
  • Create Issues for recording bug fixing and other problems.
  • Create Pull Request to merge with main branch. Repository admin should review the merge.
  • Submit Release refer to project's progress. Repository admin should set up the release plan.
  • Look into Submodules, submodules are useful to create clean repository when multiple related respositories are included.
danger

Fork to personal account is not recommended.

How to use Github Project(beta)

Github Project(beta) is a new feature developed by Github for planning and tracking work on GitHub, especially good for new projects.

There are two use cases here :

  1. Create the task board for each IC3 Core, core manager could assign, track, monitor tasks for the core members. Core manager could also make justifications of jobs based on the progress and evaluate the core memebers in a clear and better method.
  2. Create the phrases board for new project. Project manager could separate the new project into several phrases, and assign expected tasks and deadlines.It will be benefical to monitor the whole project progress.

IC3 Github Projects(beta)

How to use Github Project(classic)

Github Project(classic) is also named as 'Project(board)'. Project boards helps organize and prioritize jobs. We could create project boards for specific feature work, comprehensive roadmaps, or even release checklists.

tip

We recommend to create the project(board) for old/existed project to assign new jobs or fix issues. The feature should be replaced soon with Projects(beta).